package gui;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTable;
import javax.swing.JScrollPane;

import negocio.AlumnoControlador;
import negocio.Curso;
import negocio.CursoControlador;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class Cursos extends JFrame {
	private JTextField textField;
	private JTable table;
	private JTextField textField_2;
	private JTable table_1;
	private Cursos padreCursos;
	private CursosCrear cursosCrear = null;
	DefaultTableModel modelTable_1;
	ArrayList<Curso> listaCursos= new ArrayList<Curso>();
	Curso cursoSeleccionado=null;
	
	
	public void nullCursosCrear()
	{
		this.cursosCrear = null;
	}

	
	
	/* 
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Cursos frame = new Cursos();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	

	
	Create the frame.
	 */
	public Cursos(Principal padre) {
		padreCursos=this;
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e){
				padre.nullcursos();
			}
		});
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(300, 300, 661, 405);
		getContentPane().setLayout(null);
		this.setTitle("Cursos");
				
		JLabel lblNombreDelCurso = new JLabel("Nombre del curso");
		lblNombreDelCurso.setBounds(10, 36, 90, 14);
		
		JLabel lblAreaDelCurso = new JLabel("Area del curso");
		lblAreaDelCurso.setBounds(10, 61, 90, 14);
		getContentPane().add(lblAreaDelCurso);
		
		textField_2 = new JTextField();
		textField_2.setBounds(110, 58, 86, 20);
		textField_2.setColumns(10);
		getContentPane().add(textField_2);
		
		JLabel lblResultadosDeBusqueda = new JLabel("Resultados de busqueda");
		lblResultadosDeBusqueda.setBounds(10, 113, 158, 14);
		getContentPane().add(lblResultadosDeBusqueda);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(20, 138, 602, 167);
		getContentPane().add(scrollPane);
		
		table_1 = new JTable(){
			@Override
			public boolean isCellEditable(int row, int colum)
			{
				return false;
			}
		};
		table_1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				cursoSeleccionado = listaCursos.get(table_1.getSelectedRow());
				//System.out.println(cursoSeleccionado.getNombre());
			}
		});
		scrollPane.setViewportView(table_1);
		
		
		modelTable_1= new DefaultTableModel();
		Object[] encabezadoLista_1= {"Curso", "Area", "Sigla"};
		modelTable_1.setColumnIdentifiers(encabezadoLista_1);
		table_1.setModel(modelTable_1);
		llenarTablaCursos();
		
		
		JLabel lblBusqueda2 = new JLabel("Nombre Curso");
		lblBusqueda2.setBounds(10, 29, 90, 14);
		getContentPane().add(lblBusqueda2);
		
		textField = new JTextField();
		textField.setBounds(110, 30, 86, 20);
		textField.setColumns(10);
		getContentPane().add(textField);
		
		
		JButton btnBuscar = new JButton("Buscar");
		btnBuscar.setBounds(206, 29, 72, 23);
		getContentPane().add(btnBuscar);
		
		JButton btnCrearNuevo = new JButton("Crear nuevo...");
		btnCrearNuevo.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(cursosCrear == null)
					cursosCrear = new CursosCrear(padreCursos);
				cursosCrear.setVisible(true);
			}
		});
		btnCrearNuevo.setBounds(10, 333, 105, 23);
		getContentPane().add(btnCrearNuevo);
		
		JButton btnBorrarCurso = new JButton("Borrar curso");
		btnBorrarCurso.setBounds(125, 333, 105, 23);
		getContentPane().add(btnBorrarCurso);
		
		JButton btnSalir = new JButton("Salir");
		btnSalir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				padre.nullcursos();
				dispose();
			}
		});
		btnSalir.setBounds(533, 333, 89, 23);
		getContentPane().add(btnSalir);	
	}
	
	public void llenarTablaCursos()
	{
		ArrayList<Curso> lista= CursoControlador.getAll();
		for(Curso i: lista)
		{
			String[] fila = {i.getNombre(), i.getArea().getNombre(), i.getSigla()};
			modelTable_1.addRow(fila);
			listaCursos.add(i);//llena lista para seleccionables
		}
	}
	
}
